# -*- coding: utf8 -*-
import os
#计算一个字符串中字符`a`出现的次数并通过return返回
# def counts(substr, strs):
#     count = 0
#     i = 0
#     while i<len(strs):
#         if substr == strs[i]:
#             count += 1
#         i += 1
#     return count
#
# count = counts('a',"china is a greatful country")
# print(count)

#接收两个数字参数，返回比较大的那个数字
# def comp(a,b):
#     if a > b:
#         return a
#     else:
#         return b
# comp = lambda a,b: a if a>b else b
# c = comp(15,8)
# print(c)
# 写函数，函数接收四个参数分别是：姓名，性别，年龄，学历，然后将这四个值通过"*"拼接起来并追加到一个student_msg.txt文件中。
# def junc(*args):
#     name = args[0]
#     sex = args[1]
#     age = args[2]
#     acad = args[3]
#     info = "*".join([name,sex,age,acad,"\n"])
#     return info
# with open("student_msg.txt", mode="a+") as f:
#     while True:
#         name = input("输入姓名,输入Q/q则退出: ")
#         if name.upper() == "Q":
#             break
#         sex = input("输入性别: ")
#         age = input("输入年龄: ")
#         acad = input("输入学历: ")
#         f.write(junc(name,sex,age,acad))

# 基于函数实现用户认证，要求
# 写函数，读取的用户信息并构造为字典（用户信息存放在`files/user.xlsx`文件中）
# 用户输入用户名和密码，进行校验。（且密码都是密文，所以，需要将用户输入的密码进行加密，然后再与Excel中的密文密码进行比较）
# - 注册京东，京东存储：用户名和密码（密文）
# - 登录京东：用户名& 密码
import hashlib
import builtins
from openpyxl import load_workbook
def encrypt(origin):
    origin_bytes = origin.encode("utf8")
    md5_object = hashlib.md5()
    md5_object.update(origin_bytes)
    return md5_object.hexdigest()
def deal_excel(file):
    if os.path.exists(file) == False:
        print("文件不存在")
    wb = load_workbook(file)
    sheet = wb.worksheets[0]
    user_dict = {}
    i = 2
    j = 3
    for row in sheet.rows:
        if row[0].value == "ID":
            continue
        user_dict[row[1].value] = row[2].value
    return user_dict
def check_user(name, passwd, user_dict):
    if name not in user_dict.keys():
        print("用户不存在")
    else:
        if encrypt(passwd) != user_dict[name]:
            print("密码输入错误")
        else:
            print("账号密码正确")
if __name__ == "__main__":
    user_dict = deal_excel("user.xlsx")
    while True:
        name = input("输入姓名,输入Q/q退出: \n")
        if name.upper() == "Q":
            break
        passwd = input("输入密码： \n")
        check_user(name, passwd, user_dict)
